﻿//题目描述
//输入 n 个不超过 10^9
//的单调不减的（就是后面的数字不小于前面的数字）非负整数 a1, a2, …, an，
//然后进行 m 次询问。对于每次询问，给出一个整数 q，要求输出这个数字在序列中第一次出现的编号，如果没有找到的话输出 −1 。
//
//输入格式
//第一行 2 个整数 n 和 m，表示数字个数和询问次数。
//
//第二行 n 个整数，表示这些待查询的数字。
//
//第三行 m 个整数，表示询问这些数字的编号，从 1 开始编号。
//
//输出格式
//输出一行，m 个整数，以空格隔开，表示答案。
#include<iostream>
#include<algorithm>
using namespace std;
long long a[1000005];

//int main()
//{
//	ios::sync_with_stdio(0);
//	cin.tie(0);
//	cout.tie(0);
//	int n = 0, m = 0;
//	cin >> n >> m;
//	for (int i = 0; i < n; i++)
//		cin >> a[i];
//	for (int i = 0; i < m; i++)
//	{
//		int k = 0;
//		cin >> k;
//		int ans = lower_bound(a, a + n, k) - a;
//		if (ans < n && a[ans] == k)
//			cout << ans + 1 << ' ';
//		else
//			cout << -1 << ' ';
//	}
//	return 0;
//}

int pos(int n, int k)
{
	int left = 0, right = n - 1;
	while (left < right)
	{
		int mid = (right - left) / 2 + left;
		if (a[mid] >= k)
			right = mid;
		else
			left = mid + 1;
	}
	if (a[left] == k)
		return left + 1;
	return -1;
}
int main()
{
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int n = 0, m = 0;
	cin >> n >> m;
	for (int i = 0; i < n; i++)
		cin >> a[i];
	for (int i = 0; i < m; i++)
	{
		int k = 0;
		cin >> k;
		cout << pos(n, k) << ' ';
	}
	return 0;
}